1. Field of the Invention
The present invention relates to computer or communications systems. More specifically, the invention relates to a scheme for controlling the allocation of system resources on computer and communications systems handling a variety of services such as voice, video, and bursty data transmission.
2. Description of Related Art
In response to rapidly increasing demand for a wide variety of telecommunication services, high-speed, large-capacity computer and communications systems have been proposed. To meet these demands in an efficient and cost-effective manner, a single computer or communications system must be able to handle simultaneously different kinds of telecommunication services and applications having conflicting requirements. Moreover, these services must be accommodated in a manner that constitutes an effective and efficient use of available resources.
A typical computer or communications system generally handles real-time services such as voice, video, and smoothly transmitted data transmissions without significant degrees of latency or jitter. These types of transmissions have short-term, peak bandwidth requirements that are substantially the same as their long-term, average bandwidth requirements. These transmissions are most efficiently handled by allocating their bandwidth requirements in the system for the entire duration of the transmissions along the entire call routing path from the transmitter to the receiver.
A typical system may also handle certain bursty data transmissions that do not have stringent jitter or latency requirements. These kinds of transmissions, however, may involve periods of high rates of data transmissions with long periods of little or no data transmissions. For such transmissions, the short-term, peak bandwidth requirements may be very high compared to long-term, average bandwidth requirements. Allocation of peak bandwidth, as in the case of real-time services mentioned above, would be an inefficient use of system resources, and is not necessary for such bursty data transmissions.
Although bursty data transmissions may not have stringent jitter or latency requirements, they may have stringent loss requirements. Specifically, it is particularly important to keep the probability of packet loss very small. If such probability is not kept very small, the resulting packet retransmissions that are needed to complete the transmissions can overwhelm the network and can cause congestion and even collapse, particularly on systems handling a large amount of communication activity.
Accordingly, there is a need for an effective congestion avoidance scheme, particularly for real-time services that must be handled without significant degrees of latency or jitter. One type of prior art congestion avoidance scheme is based on admission control. An admission control scheme is typically based on a xe2x80x9cblackboxxe2x80x9d model, wherein static threshold limits are pre-determined and pre-set for each particular class or type of service handled by a system. For example, if the system handles point-to-point calls, conference calls, and video-transmission calls, then the blackbox model places a particular limit or quota on the number of concurrent calls of each class (e.g., 92 point-to-point calls, 4 conference calls and 5 video-transmission calls). In this model, each incoming new service request is evaluated in its corresponding class and if it is determined that the addition of the new service request will cause the number of active service tasks in the corresponding class to exceed the pre-determined threshold, then the new service request is rejected; otherwise, it is accepted.
Prior art blackbox models base their admission control on a simple comparison of active service tasks in a particular class to the pre-determined threshold limit or quota in that particular class. While this simple comparison may often represent the resource utilization under typical situations, the uncertainty or error between the typical use and the actual usage can produce wide uncertainty bands. These wide uncertainty bands can increase the risk of either squandering resources by unnecessarily denying service to subscribers, or accepting too many requests, and offering inferior, substandard service to subscribers.
Furthermore, the prior art blackbox model does not address situations where the relative number of different types of services differ from the assumptions used to set the blackbox model limits. For example, in the exemplary case where the prior art admission control scheme places a threshold limit of 92 point-to-point calls in a first class and another threshold limit of 4 conference calls in a second class, this admission control scheme prohibits 93 point-to-point calls and only 3 conference calls from being made simultaneously and does not scale well when a new type of service is identified or brought into the system.
Also, the prior art blackbox model fails to consider the unexpected resource utilization by occasional or unscheduled system functions, e.g., system maintenance and backups or system failures.
In accordance with the principles of the present invention, a real-time admission control scheme is proposed. The real-time admission control scheme of the present invention does not rely on pre-determined threshold limits. Instead, the current resource utilization is evaluated in real time and admission control decisions are based on this real-time evaluation.
In the present invention, as soon as a new service request is received, a real-time evaluation of the current resource utilization of each active task (i.e., in all classes, not just the corresponding class) that consumes resources is made. These tasks include the scheduled service requests (e.g., point-to-point calls, conference calls) as well as failure recovery functions. Then, total resource utilization is computed by summing the resource utilization of each active task. Accordingly, a measure of the available system resources is computed. For example, if the total resource utilization indicates that 50 MIPS are currently being used out of total usable 150 MIPS, then the measure of the available system resources is 100 MIPS.
In the present invention, each incoming service request may also be assigned a minimum acceptable resource level and the principles of the present invention may be utilized to ensure that this minimum acceptable resource level is provided. In accordance with one embodiment of the present invention, the admission control scheme is programmed with pre-defined minimum acceptable resource level information for each class. Alternatively, the minimum acceptable resource level information may be explicitly embedded within each incoming service request and may be received and evaluated by the admission control scheme when the service request is received by the system.
If the measure of the available system resources indicates that the minimum required resource level cannot be provided, then the incoming service request is rejected; otherwise, the incoming service request is accepted. For example, if the measure of available resources is 50 MIPS and the minimum resource level of the incoming request requires 65 MIPS, the incoming service request will be declined, even though 50 MIPS may be able to support the service, but at an unacceptable, low level.
Thus, in the present invention, the admission control is based on a real-time evaluation of available resources. Accordingly, the threshold limits are based on the real-time measurement of the available system resources and are therefore dynamic in nature. Unlike the prior art schemes, the threshold limits in the present invention are not pre-defined. Furthermore, the admission control decisions are not based on evaluation of active tasks only in a particular class, but can be based on evaluation of all active tasks in the system.
In one embodiment, the present invention is a method for controlling utilization of a system resource, comprising the steps of (a) receiving a request for permission to use the resource by a resource user; (b) measuring, in real time, a current total level of actual utilization of the resource for all resource users; (c) determining a current available level of the resource from the measured current total level of actual utilization; and (d) determining whether to grant the request based on the current available level of the resource.
In another embodiment, the present invention is an admission controller for a computer or communication system having a plurality of resource users for controlling utilization of a system resource, wherein the admission controller is configured to: (a) receive a request for permission to use the resource by a resource user; (b) measure, in real time, a current total level of actual utilization of the resource for all resource users; (c) determine a current available level of the resource from the measured current total level of actual utilization; and (d) determine whether to grant the request based on the current available level of the resource.
Yet, in one more embodiment, the present invention is a machine-readable medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method for controlling utilization of a system resource by an admission controller for a computer or communication system having a plurality of resource users, comprising the steps of (a) receiving a request for permission to use the resource by a resource user; (b) measuring, in real time, a current total level of actual utilization of the resource for all resource users; (c) determining a current available level of the resource from the measured current total level of actual utilization; and (d) determining whether to grant the request based on the current available level of the resource.